スクリプト/はじめてのRmakeスクリプト / 第08回 ユーザ定義関数をマスターしよう
最終投稿者:
aoihikawa
更新:2012/07/19 21:03:27
![Cdv30200 aoi icon mini](https://d2nlrppnj7be8d.cloudfront.net/materials/0007/3589/cdv30200_aoi_icon_mini.png)
はじめてのRmakeスクリプト
第08回 ユーザ定義関数をマスターしよう
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8682/C01_02_01.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8697/C02_02_01.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8682/C01_02_01.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8706/C02_02_04.png)
08-01 ユーザ定義関数
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8694/C01_02_05.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8682/C01_02_01.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8715/C02_02_07.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8682/C01_02_01.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8682/C01_02_01.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8712/C02_02_06.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8709/C02_02_05.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8691/C01_02_04.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8691/C01_02_04.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8694/C01_02_05.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8682/C01_02_01.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8703/C02_02_03.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8688/C01_02_03.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8688/C01_02_03.png)
#宿屋のユーザ関数 def shopInn() #変数「s」に表示するメッセージ文字列を入れる s = "お泊りですか?\n一晩10Gになります" #speakWithSelect関数の戻り値を元に複数分岐する case speakWithSelect(2, "はい", "いいえ", s) when 0 #「0」番目の選択肢が選ばれた場合 speak("ようこそ こちらの部屋へどうぞ") when 1 #「1」番目の選択肢が選ばれた場合 speak("無茶はされないよう") end end #宿屋のユーザ関数を使う(1回目) shopInn() #宿屋のユーザ関数を使う(2回目) shopInn()
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8712/C02_02_06.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8688/C01_02_03.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8688/C01_02_03.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8688/C01_02_03.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8688/C01_02_03.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8715/C02_02_07.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8694/C01_02_05.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8694/C01_02_05.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8706/C02_02_04.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8688/C01_02_03.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8688/C01_02_03.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8703/C02_02_03.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8703/C02_02_03.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8688/C01_02_03.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8688/C01_02_03.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8706/C02_02_04.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8706/C02_02_04.png)
08-02 ユーザ定義関数と引数
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8688/C01_02_03.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8688/C01_02_03.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8715/C02_02_07.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8688/C01_02_03.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8688/C01_02_03.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8688/C01_02_03.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8715/C02_02_07.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8682/C01_02_01.png)
#宿屋のユーザ関数 def shopInn(g) #変数「s」に表示するメッセージ文字列を入れる s = "お泊りですか?\n一晩" + toString(g) + "Gになります" #speakWithSelect関数の戻り値を元に複数分岐する case speakWithSelect(2, "はい", "いいえ", s) when 0 #「0」番目の選択肢が選ばれた場合 speak("ようこそ こちらの部屋へどうぞ") when 1 #「1」番目の選択肢が選ばれた場合 speak("無茶はされないよう") end end #宿屋のユーザ関数を使う shopInn(50)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8715/C02_02_07.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8694/C01_02_05.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8682/C01_02_01.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8715/C02_02_07.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8715/C02_02_07.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8682/C01_02_01.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8682/C01_02_01.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8697/C02_02_01.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8706/C02_02_04.png)
08-03 ユーザ定義関数と戻り値
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8688/C01_02_03.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8688/C01_02_03.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8682/C01_02_01.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8688/C01_02_03.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8715/C02_02_07.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8688/C01_02_03.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8688/C01_02_03.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8688/C01_02_03.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8703/C02_02_03.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8682/C01_02_01.png)
#宿屋のユーザ関数 def shopInn(g) #変数「s」に表示するメッセージ文字列を入れる s = "お泊りですか?\n一晩" + toString(g) + "Gになります" #変数「f」にブーリアン「false」を初期値として入れる f = false #speakWithSelect関数の戻り値を元に複数分岐する case speakWithSelect(2, "はい", "いいえ", s) when 0 #「0」番目の選択肢が選ばれた場合 speak("ようこそ こちらの部屋へどうぞ") #変数「f」の値を「true」に変更する f = true when 1 #「1」番目の選択肢が選ばれた場合 speak("無茶はされないよう") end #関数の戻り値に、変数「f」の値を設定する return f end #宿屋のユーザ関数の結果によって、分岐処理を行う if shopInn(50) speak("宿屋に泊まったよ") else speak("宿屋に泊まらなかったよ") end
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8703/C02_02_03.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8703/C02_02_03.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8688/C01_02_03.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8715/C02_02_07.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8682/C01_02_01.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8682/C01_02_01.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8697/C02_02_01.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8697/C02_02_01.png)
08-04 第08回 まとめ問題集
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8682/C01_02_01.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8700/C02_02_02.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8688/C01_02_03.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8682/C01_02_01.png)
問題01
次のスクリプトにユーザ定義関数を使用して
実行結果が「おはよう」と表示されるよう、行を追加してください
#ここに追加する speakAisatu()
問題02
次のスクリプトにユーザ定義関数と引数を使用して
実行結果が「こんにちは」と表示されるよう、行を追加してください
#ここに追加する case x when 0 speak("おはよう") when 1 speak("こんにちは") when 2 speak("こんばんは") end end speakAisatu(1)
問題03
次のスクリプトにユーザ定義関数と引数を使用して
実行結果が「こんにちは 勇者様」と表示されるよう、行を追加してください
#ここに追加する speak(speakAisatu(1) + " 勇者様")
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8706/C02_02_04.png)
![](https://d2nlrppnj7be8d.cloudfront.net/materials/0012/8688/C01_02_03.png)
<連載一覧>
第01回 変数と数値をマスターしよう
第02回 変数と文字列をマスターしよう
第03回 変数とフラグをマスターしよう
第04回 配列変数をマスターしよう
第05回 通常変数をマスターしよう
第06回 数値の応用をマスターしよう
第07回 時間の動作をマスターしよう
第08回 ユーザ定義関数をマスターしよう
第09回 スクリプト用語のまとめ
この記事についてご質問等がありましたら
こちらのブログ記事のコメントへご投稿、
よろしくお願いいたします。
コメントする
コメントするには、ログインする必要があります。
コメント一覧
![Aa mini](https://d2nlrppnj7be8d.cloudfront.net/materials/0011/3315/aa_mini.png)
アクティビティフィードで送信したか送信してないか返り値で表せる。ってかいてあったので調べてここにたどり着いたんですが、この場合、trueとfalseはどう書けばいいんでしょうか。
![Cdv30200 aoi icon mini](https://d2nlrppnj7be8d.cloudfront.net/materials/0007/3589/cdv30200_aoi_icon_mini.png)
関数と戻り値(返り値)の利用に関する記事はこちらになります